package edu.scsu.csci.annotation.validator;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author Maqbool Khan
 * @since jdk 1.5
 * @see
 */
@Target( { ElementType.FIELD})
@Documented
@Retention(value = RetentionPolicy.RUNTIME)
public @/**
 * @viz.diagram AIntegerValidator.tpx
 */
interface AIntegerValidator {
	
	/**
	 * A value of false indicates tha false is not an acceptable value.
	 * 
	 * @return
	 */
	boolean isNullAllowed() default true;
	
	/**
	 * The maximum acceptable value.
	 * 
	 * @return
	 */
	int max();
	
	/**
	 * The minimum acceptable value.
	 * 
	 * @return
	 */
	int min();
	
	/**
	 * The error meessage to be used when validation fails.
	 * 
	 * @return
	 */
	String errorMessage();
}
